<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //思考题: hasPubProperty检测某个属性是不是某个对象的 公有属性 
        // 原型上扩展方法
        //思路：1. 要是对象的属性  2.不是对象的私有
        //小问题：如果一个属性即是私有也是公有，该方法就有问题
        Object.prototype.hasPubProperty=function hasPubProperty(attr){
            //1.this--p   //2.参数  atrr--- "age"
            if(attr in this){//1.是对象的属性
                //2.不是对象的私有
                //if(!this.hasOwnProperty(attr)){
                if(this.hasOwnProperty(attr)===false){
                   return true;//公有
                }
            }
            return false;
        }

        function Person(name,age){
           //给实例对象 添加私有属性和方法
           this.name=name;
           this.age=age;
           this.num=200;
        }
        //原型对象 添加公有属性和方法
        Person.prototype.num=100;
        Person.prototype.show=function(){}

        let p = new Person("lili",18);
        console.log(p);

        console.log(p.hasPubProperty("age"));//false
        console.log(p.hasPubProperty("num"));//true
    </script>
</body>
</html>